#ifndef CODE_H
#define CODE_H

#include "Object.h"
#include "Str.h"
#include "List.h"

typedef struct Code{
	OBJECT_HEAD
	int argcount;
	int nlocals;
	int stackSize;
	int flag;

	String* byteCode;
	List* consts;
	List* names;
	List* varNames;
	
	List* freeVars;
	List* cellVars;

	
	String* fileName;
	String* moduleName;

	int lineNumber;
	String* notable;
}Code;

void initCode(Code*, int, int ,int ,int ,String*,List*,List*,List*, List*, List*, String*, String*, int, String*);

//
void printCode(Object*);

extern Type CodeType;


#endif